Problems vs. Algorithms

Code

Criteria Meet Specification

Correctness

Code produces the correct solution to the question. There are also no runtime or compile time errors.

Style

Code is neat and easy-to-read. Variables, functions, and methods have straightforward names. There is enough spacing that code is easily readable.

Simplicity

Code solution is not unnecessarily complex—it accomplishes the task at hand without extra iterating, algorithms, data structures, et cetera.

Testing

Criteria Meet Specification

Test Cases

At least three test inputs and outputs are provided. There are at least two that test for edge cases, like null or empty inputs, or very large numbers.

Explanation

Criteria Meet Specification

Efficiency

There is a clear and accurate statement of efficiency. There is an explanation that specifically mentions parts of the code that contribute to the overall efficiency.

Code Design

Explanation contains some discussion of design choices made in the code. Some examples include the choice of algorithm and data structure.

Readability

Explanation is written with proper English. Wording is clear and easy to understand. It’s okay to make a couple mistakes, but thoughts should be clearly expressed overall.